起動済み EC2 インスタンスのパブリックIPv4アドレスを削除する方法を教えてください
[2024.04.30 更新]
EC2 のコンソールから、バプリックIPv4アドレスを削除できる機能が新たに実装されました。詳細は下記の記事をご参考ください。
[アップデート]EC2インスタンスに自動割り当てされたパブリック IPv4 アドレスの動的削除と追加が可能になりました
困っていた内容
2024年2月からパブリックIPv4アドレスが有償化されることに伴い、すでに稼働している EC2 インスタンスのパブリックIPv4アドレスを削除して、プライベートサブネットに移行することを考えています。実現する方法を教えてください。
どう対応すればいいの?
すでに起動済みの EC2 インスタンスからパブリックIPv4アドレスを削除したい場合、以下の手順で実現できます。
- 対象 EC2 インスタンスに追加のネットワークインターフェイス(ENI)をアタッチする
- 対象 EC2 インスタンスのプライマリ ENI に対して Elastic IP アドレスを関連付けする
- Elastic IP アドレスの関連付けを解除すると、プライマリ ENI のパブリックIPv4アドレスが削除される
- 追加した ENI は不要になるためデタッチする
やってみた
実際に試してみました。
ここではパブリックIPv4アドレスが付与された EC2 インスタンスが、すでにパブリックサブネット上に起動している前提で進めます。
まずは EC2 インスタンスと同じサブネットに、新規でネットワークインターフェイス(ENI)を作成します。
(このENIはあとで不要になるため、IPアドレスは適当でOKです)
作成した ENI を対象 EC2 インスタンスにアタッチします。
対象 EC2 インスタンスにプライベートIPv4アドレスが2つ付与された状態になります。
この時点ではまだパブリックIPv4アドレスが付いていることも確認します。
続いて Elastic IP アドレスを用意し、EC2 インスタンスのプライマリ ENI に関連付けます。
(後から追加した ENI ではなく、プライマリ ENI に関連付けることに注意しましょう)
関連付けた Elastic IP アドレスを、すぐに関連付け解除します。
再度 EC2 インスタンスの設定を確認します。
すると EC2 インスタンスの再起動や停止を伴なわず、パブリックIPv4アドレスが削除されていることを確認できました!
このあとは追加でアタッチしたENIが不要になるため、デタッチします。
また必要に応じて Elastic IP アドレスの解放や、EC2 インスタンスが稼働しているのサブネットのルートテーブルを変更し、プライベートサブネットに変更するなどの対応を適宜行います。
注意事項
筆者の検証時には特に問題は発生しませんでしたが、実働環境で EC2 のパブリックIPv4アドレスを削除すると、アプリケーションの動作や周囲のネットワーク環境等に影響を及ぼす可能性もあります。
実施する際には、必ず充分な検証を行うことをお勧めします。
参考資料
- パブリック IPv4 アドレスの利用に対する新しい料金体系を発表 / Amazon VPC IP Address Manager が Public IP Insights の提供を開始 | Amazon Web Services ブログ
- 2024 年 2 月より前に ec2 インスタンスから IPv4 パブリック IP アドレスを削除するにはどうすればよいですか? (IPv6) | AWS re:Post
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。